
// vite.config.ts
import { defineConfig } from 'vite'
import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
import { splitVendorChunkPlugin } from 'vite'

export default defineConfig({
    //静态资源服务的文件夹
    base: './',
    resolve: {
        // 别名
        alias: {
            '@': resolve(__dirname, 'src'),
        }
    },
    css: {
        // css预处理器
        preprocessorOptions: {
            less: {
                modifyVars: {
                    // 全局less变量存储路径(配置less的全局变量)
                    hack: `true; @import (reference) "${resolve('src/public/config.less')}";`,
                },
                javascriptEnabled: true,
            }
        }
    },
    build: {
        cssCodeSplit: true,  //启用/禁用 CSS 代码拆分。当启用时，在异步 chunk 中导入的 CSS 将内联到异步 chunk 本身，并在其被加载时插入。
        minify: "terser", //terser 构建后文件体积更小
        chunkSizeWarningLimit: 1500, // 构建文件大小
    },
    plugins: [
        vue(),
        splitVendorChunkPlugin() //产物分块策略 //https://cn.vitejs.dev/guide/build.html#customizing-the-build 
    ],
    server: {
        host: "0.0.0.0",
        cors: false,//为开发服务器配置 CORS , 默认启用并允许任何源
        port: 3000,
        open: true, // 启动后自动打开浏览器
        proxy: {
            '/api': {
                target: 'https://www.xxx.com/api',
                changeOrigin: true,
                rewrite: (path) => path.replace(/^\/api/, ''),
            }
        }
    }
})